GDK W32: Set is_modifier field in GdkKeyEvent
authorРуслан Ижбулатов <lrn1986@gmail.com>
Sat, 17 Sep 2016 15:13:45 +0000 (15:13 +0000)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Sat, 17 Sep 2016 20:24:18 +0000 (20:24 +0000)
This hardcodes Control, Alt and Shift as modifier keys.

https://bugzilla.gnome.org/show_bug.cgi?id=602773

gdk/win32/gdkevents-win32.c

index 2f397f9619b386275c2d67c0f816d90ebfc5cab7..56a51ee09d1a10d73ba99f5df286d071b1b7286b 100644 (file)
@@ -2398,6 +2398,9 @@ gdk_event_translate (MSG  *msg,
               LOBYTE (HIWORD (msg->lParam)) == _gdk_win32_keymap_get_rshift_scancode (GDK_WIN32_KEYMAP (_gdk_win32_display_get_keymap (_gdk_display))))
        event->key.hardware_keycode = VK_RSHIFT;
 
+      event->key.is_modifier = (msg->wParam == VK_CONTROL ||
+                                msg->wParam == VK_SHIFT ||
+                                msg->wParam == VK_MENU);
       /* g_print ("ctrl:%02x lctrl:%02x rctrl:%02x alt:%02x lalt:%02x ralt:%02x\n", key_state[VK_CONTROL], key_state[VK_LCONTROL], key_state[VK_RCONTROL], key_state[VK_MENU], key_state[VK_LMENU], key_state[VK_RMENU]); */
 
       build_key_event_state (event, key_state);